//
//  MYEncryption.m
//  投融保
//
//  Created by 523 on 13-12-30.
//  Copyright (c) 2013年 木叶科技. All rights reserved.
//

#import "MYEncryption.h"

#import "Encryption.h"
#import "CRSA.h"

@implementation MYEncryption

+ (NSDictionary *)encryptionWithKey:(NSString *)key requestString:(NSString *)string
{
    /*===================加密开始=======================*/
    
    //    AES加密 长度16位
//    NSString *key = @"userInformations";//用户注册信息加密的key值    －－－－－－后面需要用rsa加密传给服务器的字段的（字符串）
    
    NSData *plain = [string dataUsingEncoding:NSUTF8StringEncoding];//将用户注册填写信息转换为data
    
    NSData *cipher = [plain AES256EncryptWithKey:key]; //通过key 对用户注册填写信息aes加密
    
    //    NSLog(@"加密之后的data数据-----\n%@",cipher);//加密之后的data数据不为null%
    
    //    NSLog(@"没有解密字符串-------\n%@", [[NSString alloc] initWithData:cipher encoding:NSUTF8StringEncoding]) ;//因为没有解密字符串，字符串输出为null
    
    //aes解密
//    plain = [cipher AES256DecryptWithKey:key];
    //printf("解密之后的字段-------\n%s", [[plain description] UTF8String]);
    //    NSLog(@"解密之后的字段\n------------%@", [[NSString alloc] initWithData:plain encoding:NSUTF8StringEncoding]);//打印出secret的内容,用key解密过了。如果使用错误的key，则打印null
    
    //rsa加密解密
    CRSA *_rsa = [CRSA shareInstance];
    
    
    //开始加密   //公钥私钥文件名 在  OpenSSLRSAWrapper  加密类中预定义（宏当中）－－可以根据需求修改不同的公钥私钥文件名；
    NSString *securityKey = [_rsa encryptByRsa:key withKeyType:KeyTypePublic];
    //    NSLog(@"--------------%@",securityKey);
    
    //    NSLog(@"%@",[cipher stringWithHexBytes1]);
    
    //    NSLog(@"%@",[cipher stringWithHexBytes2]);
    
    /* ===================加密结束=======================*/
    NSDictionary *dictResult=[NSDictionary new];
    [dictResult setValue:securityKey forKey:@"securityKey"];
    [dictResult setValue:cipher forKey:@"cipher"];
    
    return dictResult;
}

@end
